export function toRaw(observed) {
	const raw = observed && observed["__v_raw" /* ReactiveFlags.RAW */];
	return raw ? toRaw(raw) : observed;
}
export function isShallow(value) {
	return !!(value && value["__v_isShallow" /* ReactiveFlags.IS_SHALLOW */]);
}
export const isReadonly = (value) => !!(value && value["__v_isReadonly" /* ReactiveFlags.IS_READONLY */])

// compare whether a value has changed, accounting for NaN.
export const hasChanged = (value, oldValue) => !Object.is(value, oldValue);

export function isRef(r) {
	return !!(r && r.__v_isRef === true);
}